#ifndef NETWORK_H
#define NETWORK_H

#include <QObject>
#include <QtSerialPort>
#include <QSerialPortInfo>
#include "database.h"
#include <configinfo.h>
#include "portinfo.h"
#include <QTcpServer>
#include <QTcpSocket>
#include <QUdpSocket>
#include <QMap>

#include "showwidget.h"

class Network : public QObject
{
    Q_OBJECT
public:
    explicit Network(QObject *parent = nullptr);

    void initSerialPort(int portno); //初始化串口

    //配置串口信息
    void setSerialPort(PortInfo* portinfo);

    //创建TCPServer连接
    void createTCPServer(ConfigInfo* configinfo);
    //创建TCPClient连接
    void createTcpClient(ConfigInfo* configinfo);
    //往串口写
    void writeSerialport(QByteArray buf,QSerialPort* serialport);
    //往客户端写
    void writeClient(QSerialPort* serialport);
    //创建Udp连接
    void createUdp(ConfigInfo* configinfo);

private:
//    QSerialPort* serialport; //串口
    QMap<int,QSerialPort*> map; //通过端口号管理串口
    Database* db;
    PortInfo* portinfo;
    QTcpServer* tcpserver;
    QTcpSocket* tcpsocker;
    QUdpSocket* udpsocker;

    ShowWidget *sw; // 日志

};

#endif // NETWORK_H
